Mitigation of transmission errors of quantized channel state information feedback in multi antenna systems

ABSTRACT

Methods are disclosed for improving communications on feedback transmission channels, in which there is a possibility of bit errors. The basic solutions to counter those errors are: proper design of the CSI vector quantizer indexing (i.e., the bit representation of centroid indices) in order to minimize impact of index errors, use of error detection techniques to expurgate the erroneous indices and use of other methods to recover correct indices.

TECHNICAL FIELD

Wireless communication using multiple antennas.

BACKGROUND

One of the most promising solutions for increased spectral efficiency in high capacity wireless systems is the use of multiple antennas on fading channels. The fundamental issue in such systems is the availability of the channel state information (CSI) at transmitters and receivers. While it is usually assumed that perfect CSI is available at the receivers, the transmitter may only have partial CSI available due to the feedback delay and noise, channel estimation errors and limited feedback bandwidth, which forces CSI to be quantized at the receiver to minimize feedback rate.

SUMMARY

Methods are disclosed for improving communications on feedback transmission channels, in which there is a possibility of bit errors. The basic solutions to counter those errors are: proper design of the CSI vector quantizer indexing (i.e., the bit representation of centroid indices) in order to minimize impact of index errors, use of error detection techniques to expurgate the erroneous indices and use of other methods to recover correct indices (see pending US patent application “Quantized channel state information prediction in multiple antenna systems” Ser. No. 11/852,206.) The content of U.S. Ser. No. 11/754,965 and 11/852,206 are incorporated herein by reference.

There is provided a method of reducing the effect of errors in the feedback of channel state information from a receiver to a transmitter. In an embodiment, the method comprises the steps of choosing multiple mappings of indices to channel states, estimating the effect on transmission quality of feedback errors for each of the mappings of indices to channel states, selecting a mapping of indices to channel states to reduce the effect of feedback errors; and transmitting feedback of channel state information from the receiver to the transmitter, the receiver representing a channel state using the codeword determined by the selected mapping of indices to channel states.

These and other aspects of the method are set out in the claims, which are incorporated here by reference.

BRIEF DESCRIPTION OF THE FIGURES

Embodiments will now be described with reference to the figures, in which like reference characters denote like elements, by way of example, and in which:

FIG. 1 is a schematic diagram showing the division of the channel state space into Voronoi regions.

FIG. 2 shows the basic structure of the system proposed in U.S. patent application Ser. No. 11/754,965, and which may be used as modified according to the disclosed algorithms.

FIG. 3 a shows a good mapping of indices to centroids.

FIG. 3 b shows a bad mapping of indices to centroids.

FIG. 4 shows the general operation of an embodiment of an indexing optimization algorithm.

FIG. 5 shows the operation of the initialization phase of the exemplary indexing design algorithm of FIG. 4.

FIG. 6 shows the operation of the optimization phase of the exemplary indexing design algorithm of FIG. 4.

FIG. 7 shows an embodiment of the system operation with error-detecting codes.

FIG. 8 shows an embodiment of the system operation without error detecting codes.

FIG. 9 shows a more general embodiment of an indexing algorithm.

DETAILED DESCRIPTION

In the typical CSI vector quantizer (VQ), the quantization of the channel vector space is performed as in FIG. 1: the available space is tessellated by Voronoi regions 20 with corresponding centroids 22 that represent all vector realizations within each Voronoi region. The number of such regions (centroids) is defined by the number of available bits and each centroid is assigned an index 23 with the binary representation of length equal to the number of available feedback bits. The indices can also be represented by arbitrary sequences of symbols, so long as each index is represented by a unique sequence of symbols, and the symbols can be transmitted by the feedback channel. When the receiver transmits its channel state information to the transmitter, it is the bits (or symbols) representing the centroid indices that are physically sent over the feedback channel. When the term “binary index” is used, one could substitute “the sequence of symbols representing the index”. In the claims when a mapping of indices to channel states is mentioned, a mapping of symbol sequences to indices would serve the same purpose and so the claims should be construed to cover both.

All presented solutions can be used for both eigenmode and singular value codebooks in systems ranging from only one active receiver at a time to systems with multiple receivers being active simultaneously (where we define being active as receiving transmissions). The design of the feedback encoding solutions can be applied to quantized matrices of orthogonal eigenmodes, subsets of eigenmodes and scalar singular values as necessary. The following descriptions will be generic in form so that they can easily be applied to any type of CSI quantizing solution.

FIG. 2 shows the basic structure of the system proposed in U.S. patent application Ser. No. 11/754,965. The system works as follows:

-   -   1. Before the transmission epoch, each receiver 38 estimates 40         its channel matrix H for a feedforward channel 34 and uses this         information to perform the singular value decomposition (SVD) 42         of the matrix.     -   2. The eigenmode and singular value components are separately         quantized 44 using two codebooks V 46 and D 48, respectively.     -   3. The indices of the selected codewords are encoded 52, 54 and         fed back 56, 58 to the transmitter 36 on a feedback channel 50.     -   4. The transmitter includes an indexer and optimizer 66 which         uses all decoded 60, 62 indices 64 from all receivers in the         system to choose 68, 70 the preselected linear modulation and         power allocation matrices B and S, respectively. The choice is         based on a predefined set of rules (maximum fairness, throughput         etc.).     -   5. The input signal 72 is modulated using the modulation 74 and         power allocation 76 matrices, transmitted to the receiver over         the feedforward channel 34, using antennas 32, and the         transmitted modulated signal is processed 78 by the receiver.

The feedback channel 50 shown in FIG. 2 will inevitably suffer from the transmission errors and the indices of the channel vectors reported by the receivers will be erroneously decoded at the transmitter. Even if the feedback information is protected by channel codes, in a multiple user scenario, it is possible that the interference will cause the indices to be detected with errors, which will lower the system's throughput.

For example, in FIG. 1, during the first part of the actual vector trajectory 24, the centroid index number 3 represented by bits 011 would be reported to the transmitter. However, if for some reason, the second index bit would be recovered with an error, the centroid index number 1 (represented by bits 001) would instead be received by the transmitter, which would cause it to choose improper modulation matrices B and S (see previous section).

The basic transmission of the feedback indices 23 may comprise the following steps:

-   -   1. Selection of the indices 23 representing the centroids 22         closest to the actual channel vectors.     -   2. (Optional) Adding error detection check bits to the binary         representation of the centroid indices.     -   3. (Optional) Adding channel error correction check bits.     -   4. Transmission of all the bits.     -   5. (Conditioned on 3) Performing channel decoding of the         received bits.     -   6. (Conditioned on 2) Performing error detection of the received         bits.     -   7. Reporting the received channel vector indices to the         optimizer/indexer in FIG. 2.     -   8. (Optional) Reporting which indices contain errors to the         optimizer/indexer in FIG. 2. This step can use results from 6 or         any alternative method as outlined later on.

Based on the above eight steps, the indexer will now be able to make decision on the choice of modulation matrices for the next transmission epoch. Three exemplary approaches to the problem are:

-   -   1. If error detection codes or any alternative error detection         method is used and the base station optimizer is aware of         erroneous receiver indices, it may discard them and only use the         correct ones in the optimization phase.     -   2. If error detection codes or any alternative error detection         method is used and the base station optimizer is aware of         erroneous receiver indices, it may attempt to recover them and         use all received indices (correct and recovered) in the         optimization phase.     -   3. If error detection is not used at all, the optimizer assumes         that the received indices are very close to the actual         transmitted indices and use them as if they were all correct.

A basic difference between methods 1, 2 and 3 lies in whether the error detection methods are used to detect problems in channel information indices fed back to the base station. If such methods are used, the transmitter may recognize which indices are incorrect and can take appropriate actions. If no error detection may be performed and the received indices are used ‘as-is’, the vector quantizer indexing must be properly designed as shown in FIG. 3 a.

The mapping of the indices to the centroids in a quantizer is a complex task that can influence the system's performance tremendously when errors in the feedback link are not negligible. FIGS. 3 a and 3 b shows the situation, where the identical vector quantizer has a different mapping of indices 23 and the results of one bit error in the transmission of the centroid indices.

In FIG. 3 a, the mapping was done in a way that ensured that one bit error in the last position of the index moved the centroid received at the transmitter not far from the actual one. In other words, the small Hamming distance of the difference between the actual and received indices of the centroid corresponds to the small distance 26 between the actual centroids. The centroid distance 2-6 function will be discussed further in the document.

In FIG. 3 b, the small Hamming weight of index error does not correspond to the small centroid distance. In this case, a 1-bit error forces the centroid to move far away from the actual one, which may have a very negative influence on the system's performance.

The following algorithms are presented:

-   -   1. Design of the indexing for CSI MIMO vector quantizers.     -   2. Actual operation of the system using encoded feedback link         with CSI MIMO quantizers with or without error detection.

The algorithm for the design of the indexing can be carried out in any suitable computing device, including for example pen and paper. Typically the design will be carried out prior to the initialization of the MIMO system.

The following notation will be used:

-   -   V_(k)—the kth centroid in codebook V.     -   k,l—indices of centroids in codebook V.     -   d_(kl)—the distance between the centroids specified by indices k         and l.     -   d(k;e)—distance profile for centroid V_(k) and a given number of         bit errors e.     -   GDP(e)—global distance profile for a given number of bit errors         e.     -   i,j—binary indices of a codeword in a vector quantizer.     -   H_(ij)—the Hamming distance between indices i and j.     -   I—the number of iterations of the index optimization algorithm     -   N—the length of the binary representation of centroid indices         i,j.

It is assumed that the indexing design follows the design of the channel vector quantizer V using any of the existing methods, for example the method shown in the patent application “Quantization of channel state information in multiple antenna systems” (U.S. patent Ser. No. 11/754,965 pending). The input to the quantizer indexing algorithm is the distance matrix D with number or rows and columns equal to the number of all centroids V_(k) (with our notation the number of rows and columns is equal to 2^(N)). The entries in the matrix are distances between the centroids—for example, the kth row and lth entry is given by d_(kl). In particular, the entries on the diagonal of the matrix are equal to 0. The methods used to calculate the distance matrix D as well as the centroid distances are immaterial in this patent application. However, some of the methods to calculate the centroid distances for the matrix D can be defined as follows:

-   -   1. d_(kl) is the angle between the centroids V_(k) and V_(l).     -   2. d_(kl) is the smaller of the angles between the centroids         V_(k) and V_(l) and between the centroids V_(k) and −V_(l).     -   3. d_(kl) is the Euclidean distance between the centroids V_(k)         and V_(l).     -   4. d_(kl) is the average system throughput loss when centroid         V_(k) is chosen instead of V_(l).     -   5. d_(kl) is the user system throughput loss when centroid V_(k)         is chosen instead of V_(l).     -   6. Any other distance definition depending on the system design         parameters

In addition to the distance metric d_(kl), representing a distance between two specified quantizer centroids, a set of distance profiles, d(k;e), and a global distance profile, GDP(e), are used to represent the distance profile of the indexed quantizer. A distance profile d(k;e) for a given centroid k and a number of errors e represents a set of numbers corresponding to the distances between all erroneous representations of the centroid V_(k) and the actual centroid V_(k), assuming that e errors appeared during the transmission of its corresponding index i. In other words, d(k;e)=[d ₁ ,d ₂ ,d ₃ , . . . ,d _(n) , . . . ,d _(E)], where E is the number of e-element subsets in N-long binary representation of codebook indices and d_(kl) corresponds to distances d_(kl) between the centroid V_(k) and its erroneous version V_(l) containing e index errors.

Finally, to characterize the entire codebook, a global distance profile GDP(e) is defined as the union of all distance profiles d(k; e).

Indexing Design Algorithm.

Design of the indexing based on the distance matrix D is performed using a heuristic algorithm operating in two phases: the initialization phase and optimization phase. Since the initialization phase of the algorithm depends on random initial choice of indices, it is recommended that both phases of the algorithm are repeated storing the index map after each optimization step for a given number of iterations I until the best solution has been found or the design constraint has been met. The general operation of the indexing design algorithm is shown in FIG. 4 and described below.

General Algorithm:

-   -   1. In step 80, initialize iteration counter i and in step 82 the         previous global distance profile GDP_(previous.)     -   2. In step 84, run the Initialization phase of the algorithm         (see below).     -   3. In step 86, run the Optimization phase of the algorithm (see         below).     -   4. In step 88, store index map and calculate the new global         distance profile GDP(e).     -   5. In step 90 compare GDP(e) with GDP_(previous); in step 92         check if GDP(e) improves GDP_(previous) and if so then in step         94 exchange GDP_(previous) with GDP(e) and store the current         index map.     -   6. In step 96 increase i by 1.     -   7. In step 98 if i<I go to 2.     -   8. In step 100, STOP.

Initialization Phase:

-   -   1. In step 102, generate the distance matrix D; in step 104         initialize the lists of unassigned indices, centroids and         processed entries in D.     -   2. In step 106, find the smallest unprocessed entry d_(u)>0 in         the matrix D.     -   3. Mark the entry d_(kl) as processed.     -   4. In step 108 search for centroids V_(k) and V_(l)         corresponding to d_(kl); in step 110 check if any indices have         been assigned to either centroid. If neither centroids V_(k) nor         V_(l) corresponding to d_(kl) have been assigned any indices i         or j, in step 112 (a-c), step 118 (d-e) and step 120 (f):         -   a) Choose a random index i from the list of the unused             indices.         -   b) Assign the index i to the centroid V_(k).         -   c) Mark the ith entry in the list of used indices list as             taken.         -   d) Choose a random index j from the list of the unused             indices in such a way that the corresponding H_(ij) is             minimized.         -   e) Assign the index j to the centroid V_(l).         -   f) Mark the jth entry in the list of used indices list as             taken, and V_(l) as having an index assigned to it in the             list of used centroids.     -   5. In step 114, check if only one of the centroids V_(k) or         V_(l) have been assigned an index, and if so in step 118 (a-b)         and step 120 (c):         -   a) Choose a random index j from the list of the unused             indices in such a way that H_(ij) is minimum, where it is             assumed (step 116) that i is the binary index of the already             indexed centroid.         -   b) Assign the index j to the unassigned centroid.         -   c) Mark the jth entry in the list of used indices as taken,             and mark the unassigned centroid as assigned.     -   6. If both centroids V_(k) or V_(l) have been assigned an index,         go to 7.     -   7. In step 122, if there are still unassigned indices, go to 2.     -   8. In step 124, STOP.

The operation of the initialization phase is presented in FIG. 5.

After the completion of the initialization phase, all centroids V_(k) in the codebook V have been assigned the binary indices i, with the majority of smallest distances d_(kl) in matrix D coupled to the binary indices i and j with small Hamming distances. However, the initialization phase can only reach locally optimum solutions and, in the next step, an improved solution is iteratively searched for.

Optimization Phase:

-   -   1. In step 130, generate the distance matrix D and initialize         the global distance profile GDP(e).     -   2. In step 132, initialize the list of processed entries in D.     -   3. In step 134, set the previous global error distance as         GDP_(previous)=GDP(e).     -   4. In step 136, find the smallest unprocessed entry d_(kl)>0 in         the matrix D, and mark it as processed.     -   5. In step 138, find the binary indices i and j assigned to the         centroids k and l. Choose whether to swap them as follows:         -   a) In step 140, calculate the global distance profile             GDP_(original)(e) with mapping of centroid V_(k) to binary             index i and centroid V_(l) to binary index j.         -   b) In step 142 and 144, calculate the global distance             profile GDP_(swapped)(e) with mapping of centroid V_(k) to             binary index j and centroid V_(l) to binary index i.         -   c) In step 146 choose the mapping corresponding to better             global distance profile from 6a) and 6b) and in step 148             assign the indices of centroids accordingly.     -   6. In step 150, check the list of the processed entries d_(kl),         and if there are still unprocessed entries, go to 4.     -   7. In step 152, calculate the GDP(e) with the current mapping of         centroids and indices. If it is better than GDP_(previous) then         go to 2.     -   8. In step 154, if there are no improvements over GDP_(previous)         STOP.

The operation of the optimization algorithm is presented in FIG. 6.

The optimization phase iteratively searches for better mapping between centroids and indices by swapping the binary representation of the closest pairs. After each such swap, the global distance profile for swapped mapping is compared to the unswapped mapping and the globally better solution is chosen. The algorithm is repeated iteratively through all centroids and stops when no improvement can be achieved by consecutive swapping of the indices.

A more general version of this approach to indexing is shown in FIG. 9. In FIG. 5, pairs of centroids (that is, channel states representing a region of channel state space for purposes of quantization) near one another in terms of the chosen distance measure are chosen and are assigned indices also near one another in Hamming distance, Hamming distance being a proxy for the probability of one index being mistakenly received as another (the less the distance, the more likely they will be confused). Since the feedback bandwidth is limited, there will have to be indices near one another in Hamming distance and the effect of feedback errors is reduced if such nearby indices are assigned to nearby channel states, so as to reduce the effect on transmission quality if they are mistaken for one another. Hence the initialization phase depicted in FIG. 5 can be regarded as choosing multiple mappings of indices to channel states in step 220 (the different possible assignments of indices to a pair of channel states), estimating the effect of feedback errors of each in step 222 (using Hamming distance as a proxy in this case), and selecting one in step 224 (in this case one with the minimum Hamming distance) so as to reduce the effect of feedback errors. Similarly the optimization phase shown in FIG. 6 includes choosing multiple mappings of indices to channel states in step 220 (in this case differing from one another by the swapping of pairs of indices), estimating the effect of feedback errors of each mapping (in this case using the global distance profile), and selecting a mapping to reduce the expected effect of feedback errors (by choosing the one with the best global distance profile in this case). No matter how the mapping is selected, it is used in step 226 to send feedback of information concerning a channel state from a receiver to a transmitter, the receiver representing the channel state using the index mapped to the exemplary state (eg. centroid) for the region of channel state space in which the channel state lies.

System Operation with Error Detection in the Feedback Link

If the system uses error detecting codes in the feedback link, its operation can be summarized as follows:

-   -   1. In step 160, initialize transmission epoch to t=1.     -   2. In step 162, each receiver estimates its channel matrix H[t].     -   3. In step 164, each receiver performs the vector quantization         of the channel state information.     -   4. In step 166, the channel state information indices are         encoded using error detecting code (such as CRC).     -   5. (Optional) In step 168, the channel state information indices         with the error-detection redundancy are encoded using error         correcting code (such as convolutional or turbo codes).     -   6. In step 170, the encoded channel state information indices         are fed back to the transmitter.     -   7. (Conditional on 5) In step 172, the received channel state         information indices are decoded in a channel decoder that         attempts to correct possible channel transmission errors.     -   8. In step 174, the decoded indices are checked by an         error-detecting decoder.     -   9. In step 176, the receiver counts the number of erroneously         decoded indices.     -   10. Depending (in step 178) on the implementation, the receiver         may then:         -   a) In step 180, expurgate the erroneous indices, if there             are still enough indices for optimization process, and             process only the remaining ones         -   b) In step 184, ignore the errors and use the erroneous             indices.         -   c) In step 182, regenerate the erroneous indices, for             example, by using the channel prediction techniques from             pending US patent application “Quantized channel state             information prediction in multiple antenna systems” Ser. No.             11/852,206.     -   11. In step 186, the transmitter performs the selection of         active users using any method (maximum fairness, maximum         throughput etc.) and chooses the corresponding modulation         matrices.     -   12. The signal is transmitted to the selected active receivers.     -   13. In step 188, increase transmission epoch as t=t+1.     -   14. Go to 2.

The operation of the algorithm is presented in FIG. 7.

System Operation without Error Detection in the Feedback Link

If the system uses no error detecting codes in the feedback link, its operation can be summarized as follows:

-   -   1. In step 190, initialize transmission epoch to t=1.     -   2. In step 192, each receiver estimates its channel matrix H[t].     -   3. In step 194, each receiver performs the vector quantization         of the channel state information.     -   4. (Optional) In step 196, the channel state information indices         with the error-detection redundancy are encoded using error         correcting code (such as convolutional or turbo codes).     -   5. In step 198, the encoded channel state information indices         are fed back to the transmitter using the method described in         previous sections.     -   6. (Conditional on 4) In step 200, the received channel state         information indices are decoded in a channel decoder that         attempts to correct possible channel transmission errors.     -   7. If (step 202) the index error detection is possible using         alternative methods, for example, channel prediction techniques         such as the one presented in the pending US patent application         “Quantized channel state information prediction in multiple         antenna systems” Ser. No. 11/852,206, the transmitter may:         -   a. In step 206, expurgate the erroneous indices if there are             still enough indices for optimization process,         -   b. In step 204, regenerate the erroneous indices using, for             example, channel prediction techniques.     -   8. If (step 202) the index error detection is impossible, in         step 208 the receiver uses the received indices as correct ones,     -   9. In step 210, the transmitter performs the selection of active         users using any method (maximum fairness, maximum throughput         etc.) and chooses the corresponding modulation matrices.     -   10. The signal is transmitted to the selected active receivers.     -   11. In step 212, increase transmission epoch as t=t+1.     -   12. Go to 2.

The operation of the algorithm is presented in FIG. 8.

Immaterial modifications may be made to the embodiments described here without departing from what is covered by the claims. In the claims, the word “comprising” is used in its inclusive sense and does not exclude other elements being present. The indefinite article “a” before a claim feature does not exclude more than one of the feature being present. Each one of the individual features described here may be used in one or more embodiments and is not, by virtue only of being described here, to be construed as essential to all embodiments as defined by the claims. 

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
 1. A method of operating a multiple antenna communication system having a transmitter and multiple receivers, the method comprising: each receiver estimating its channel state; each receiver selecting a codebook index, according to an assignment of indices to channel states known to both the receiver and the transmitter, the selected codebook index representing a predefined channel state near its respective estimated channel state; each receiver transmitting its respective selected codebook index to the transmitter; the transmitter using channel prediction to determine if each received codebook index is correct or erroneous; and the transmitter transmitting information to one or more of the receivers, using the selected indices.
 2. The method of claim 1 wherein the channel state is characterized by a plurality of indices taken from multiple codebooks.
 3. The method of claim 2 in which the multiple codebooks comprise a codebook representing an eigenmode of the channel state and a codebook representing a gain of the channel state.
 4. The method of claim 1 wherein the codebook indices are encoded at the receivers using an error-correcting code, and decoded at the transmitter using an error-correcting decoder.
 5. The method of claim 1 wherein the transmitter uses a form of prediction based on knowledge of an allowed subset of codebook indices out of all indices to determine if the received index is correct or erroneous.
 6. The method of claim 1 wherein the transmitter uses only codebook indices not determined to be erroneous or recovered erroneous indices in transmitting to the receivers.
 7. The method of claim 6 wherein the transmitter uses channel prediction to recover codebook indices determined to be erroneous.
 8. The method of claim 1 wherein the transmitter uses codebook indices determined to be erroneous in transmitting to the receivers.
 9. The method of claim 1 wherein the transmitter attempts to recover codebook indices determined to be erroneous.
 10. The method of claim 1 in which the codebook indices are encoded at the receivers using an error-detecting code, and decoded at the transmitter using an error-detecting decoder.
 11. A receiver for a multiple antenna communication system, the receiver comprising: a channel state estimation unit with access to a plurality of indices from multiple codebooks; and a codebook index selection unit connected to the channel state estimation unit with access to index assignment information for channel states known to both the receiver and at least one transmitter.
 12. A multiple antenna communication system comprising a plurality of receivers as defined in claim 11, and further comprising a transmitter disposed for transmitting information to at least one of the receivers by using indices selected by said receiver's codebook index selection unit to estimate the channel state.
 13. A multiple antenna communication system comprising a plurality of receivers and a transmitter; each receiver comprising a channel state estimation unit with access to a plurality of indices from multiple codebooks, and a codebook index selection unit connected to the channel state estimation unit with access to index assignment information for channel states known to both the receiver and the transmitter; the transmitter disposed for transmitting information to at least one of the receivers by using indices selected by said receiver's codebook index selection unit and transmitted to the transmitter and received by the transmitter to estimate the channel state, the transmitter further comprising a channel prediction unit, the transmitter disposed to use a predicted channel state from the channel prediction unit to determine if each received channel codebook index is correct or erroneous.
 14. A method of operating a multiple antenna communication system, the system comprising a transmitter and multiple receivers, the method comprising: each receiver estimating its channel state; each receiver, based on its respective estimated channel state, selecting a corresponding codebook index from a plurality of codebook indices known to both the receiver and the transmitter; each receiver transmitting its respective selected codebook index to the transmitter; if the transmitter determines that at least one of the received codebook indices is erroneous, the transmitter selecting a channel precoding matrix based on at least one erroneous codebook index; and the transmitter transmitting information to one or more of the receivers using the selected channel precoding matrix.
 15. The method of claim 14, wherein the selected codebook index is encoded at each receiver using an error-correcting encoder prior to the transmitting, and wherein the received codebook indices are decoded at the transmitter using an error-correcting decoder.
 16. The method of claim 15, wherein the transmitter uses a form of prediction based on the knowledge of an allowed subset of codebook indices out of all codebook indices to determine if the received codebook index is correct or erroneous.
 17. The method of claim 14, wherein the transmitter uses channel prediction to determine whether each received codebook index is correct or erroneous.
 18. A method of operating a transmitter in a multiple antenna communication system, the system comprising the transmitter and multiple receivers, the method comprising: the transmitter receiving from each receiver, a respective codebook index, the respective codebook index selected by each receiver based on its estimation of its channel state; if the transmitter determines that at least one of the received codebook indices is erroneous, the transmitter selecting a channel precoding matrix based on at least one erroneous codebook index; and the transmitter transmitting information to one or more of the receivers using the selected channel precoding matrix.
 19. The method of claim 18, wherein the respective codebook index is encoded at each receiver using an error-correcting encoder, and wherein the received codebook indices are decoded at the transmitter using an error-correcting decoder.
 20. The method of claim 18, wherein the transmitter uses channel prediction to determine whether each received codebook index is correct or erroneous.
 21. The method of claim 18, wherein the transmitter uses a form of prediction based on the knowledge of an allowed subset of codebook indices out of all codebook indices to determine if the received codebook index is correct or erroneous. 